package sessao;

import interfaceUsuario.TCPPPChat;
import controle.ControleChat;

public class SessaoChat {
	public String hostIP;
	public int porta;
	public int statusConexao;
	public boolean ehHost;
	public String statusString;
	public StringBuffer adicionar;
	public StringBuffer enviar;
	public ControleChat controle;
	public TCPPPChat chat;

	public SessaoChat(String hostIP, int porta, boolean ehHost, TCPPPChat chat){
		this.chat = chat;
		this.hostIP = hostIP;
		this.porta = porta;
		this.statusConexao = chat.DESCONECTADO;
		this.ehHost = ehHost;
		this.statusString = chat.statusMensagem[statusConexao];
		this.adicionar = new StringBuffer("");
		this.enviar = new StringBuffer("");
	}

	public void alterarStatusTS(int novoStatusConexao, boolean semErro) {		     
		if (novoStatusConexao != 0) {
			this.statusConexao = novoStatusConexao;
		}
		if (semErro) {
			this.statusString = this.chat.statusMensagem[this.statusConexao];
		}		      
		else {
			this.statusString = this.chat.statusMensagem[0];
		}		
	}

	public void alterarStatusNTS(int novoStatusConexao, boolean semErro) {
		if (novoStatusConexao != 0) {
			this.statusConexao = novoStatusConexao;
		}		      
		if (semErro) {
			this.statusString = this.chat.statusMensagem[this.statusConexao];
		}		      
		else {
			this.statusString = this.chat.statusMensagem[0];
		}		
	}
	
	public void adicionarString(String string) {
		synchronized (this.adicionar) {
			this.adicionar.append(string);
		}
	}

	public void enviarString(String string) {
		synchronized (this.enviar) {
			this.enviar.append(string + "\n");
		}
	}
}